package com.puppy.config;

//import com.puppy.utils.AliyunOSSOperator;
//import com.puppy.utils.AliyunOSSProperties;
//import com.aliyun.oss.AliyunOSSOperator;
//import com.aliyun.oss.AliyunOSSProperties;
import com.puppy.utils.AliyunOSSOperator;
import com.puppy.utils.AliyunOSSProperties;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration //配置类
@EnableConfigurationProperties(AliyunOSSProperties.class)// 开启配置文件属性绑定,将该类注入到IOC容器中
public class CommonConfig {

//    @ConditionalOnClass(AliyunOSSProperties.class) // 如果类AliyunOSSProperties存在，则执行下面的代码
    @ConditionalOnMissingBean // 如果容器中没有AliyunOSSProperties这个bean，则执行下面的代码
    @Bean   // 将AliyunOSSOperat/**/or这个bean交给spring容器管理
    // 构造方法参数为AliyunOSSProperties，spring容器会自动注入这个bean
    // 不用自己去传参，实质上该方法形参省略注解@Autowired。所以确保有AliyunOSSProperties这个bean存在
    public AliyunOSSOperator aliyunOSSOperator(AliyunOSSProperties aliyunOSSProperties) {

        return new AliyunOSSOperator(aliyunOSSProperties);
    }
    //启动类一运行，就会自动运行该方法，将方法返回值AliyunOSSOperator注入到容器中。
}
